package com.base.controller;

import com.base.po.voip.RebateDis;
import com.base.service.RebateDisService;
import com.base.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 淘宝分销订单管理服务端
 *
 * @author f
 */
@Controller
@RequestMapping("/admin")
public class index_RebateDis {

    @Autowired
    private RebateDisService rebateDisService; // 订单信息

    /**
     * 订单信息首页
     *
     * @param request       参数
     * @param tradeId       订单ID
     * @param currentPageNo 当前页
     * @param mobile        手机号码
     * @return ModelAndView
     */
    @RequestMapping("/rebateDisIndex")
    public ModelAndView rebateDisIndex(HttpServletRequest request, String tradeId, Integer currentPageNo, String mobile) {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        // 设置分页 获取内容
        Page page = new Page(); // 实例化分页
        page.setCurrentPageNo(currentPageNo); // 设置当前页
        List<RebateDis> rebateDis = null; // 订单内容集合
        RebateDis rd = null; // 数量以及佣金
        // 判断登录权限
        switch ((int) request.getSession().getAttribute("adminUsergrade")) {
            case 0: // ADMIN用户显示 全部
                userid = null; // 把userid赋值为空 不进行break 之后进行查找商家下的所有内容 便是全部
            case 2: // 商家用户显示 商家下的用户
                rd = rebateDisService.countByShopAll(userid, tradeId, mobile);
                page.setRecordTotal(rd.getItemNum()); // 设置总条数
                rebateDis = rebateDisService.selectByShopAll(page, userid, tradeId, mobile); // 赋值集合内容
                break;
            case 1: // 代理商用户显示 本代理商和本代理商下的代理商以及商家下的用户
                rd = rebateDisService.countByParentAll(userid, tradeId, mobile);
                page.setRecordTotal(rd.getItemNum()); // 设置总条数
                rebateDis = rebateDisService.selectByParentAll(page, userid, tradeId, mobile); // 赋值集合内容
                break;
        }
        map.put("rebateDis", rebateDis); // 订单对象
        map.put("mobile", mobile); // 用户手机号
        map.put("tradeId", tradeId); // 订单编号
        map.put("userCommission", rd.getUserCommission()); // 佣金
        map.put("pages", page); // 分页
        return new ModelAndView("jsp/index_RebateDis", map);
    }
}
